import type { Profile } from '@/types/user'
import { getLocalToken, removeLocalToken, setLocalToken } from '@/utils/auth'
import { defineStore } from 'pinia'
import { ref } from 'vue'

export const useUserStore = defineStore('hm-user', () => {
	// token 信息
	const token = ref(getLocalToken() || '')

	// 登录成功，保存token
	const setToken = (val: string) => {
		token.value = val
		// 持久化存储
		setLocalToken(val)
	}

	// 退出登录，删除token
	const clearToken = () => {
		token.value = ''
		// 删除持久化
		removeLocalToken()
	}

	// 用户信息
	const profile = ref<Profile>({} as Profile)
	// 设置用户信息
	const setProfile = (val: Profile) => {
		profile.value = val
	}
	// 清空用户信息
	const clearProfile = () => {
		profile.value = {} as Profile
	}

	// 记得返回
	return {
		profile,
		setProfile,
		clearProfile,
		token,
		setToken,
		clearToken
	}
})
